home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / machack / Hacks97 / WarriorsProgress.sit / Warrior’s Progress / source code / Source / Libraries / Processes / ProcessInfo.cp < prev    next >
Text File  |  1997-06-28  |  1KB  |  54 lines

  1. // ProcessInfo.cp
  2.  
  3. #ifndef ProcessInfo_h
  4. #include "ProcessInfo.h"
  5. #endif
  6. #ifndef ProcessError_h
  7. #include "ProcessError.h"
  8. #endif
  9.  
  10. ProcessInfo::ProcessInfo( ::Process p )
  11.   {
  12.     processInfoLength = sizeof( ProcessInfoRec );
  13.     processName = name;
  14.     processAppSpec = &file;
  15.     Get( p );
  16.   }
  17.  
  18. ProcessInfo::ProcessInfo( ::Process::ApplicationProcess p )
  19.   {
  20.     processInfoLength = sizeof( ProcessInfoRec );
  21.     processName = name;
  22.     processAppSpec = &file;
  23.     Get( p );
  24.   }
  25.  
  26. void ProcessInfo::Get( ::Process process )
  27.   {
  28.     ProcessError error( GetProcessInformation( &process.Number(),
  29.                                                              this ) );
  30.     error.Throw();
  31.   }
  32.  
  33. void ProcessInfo::Get( ::Process::ApplicationProcess )
  34.   {
  35.     ProcessSerialNumber psn;
  36.     psn.highLongOfPSN = 0;
  37.     psn.lowLongOfPSN = kCurrentProcess;
  38.     
  39.     ProcessError error( GetProcessInformation( &psn, this ) );
  40.     error.Throw();
  41.   }
  42.  
  43. const ProcessInfo& ProcessInfo::Application()
  44.   {
  45.     static ProcessInfo info( Process::application );
  46.     return info;
  47.   }
  48.  
  49. bool ProcessInfo::HasLauncher() const
  50.   {
  51.     return processLauncher.highLongOfPSN != 0
  52.          || processLauncher.lowLongOfPSN != kNoProcess;
  53.   }
  54.